[Naor-OT05]Computationally Secure Oblivious Transfer
keywords: Cryptography, Privacy preserving computation, Secure function evaluation, Oblivious transfer
ABSTRACT
contributions: computationally secure protocols of
- 1-out-of-N OT: only log N executions of a 1-out-of-2 OT protocol
- k-out-of-N OT: more eff. than k repetitions of 1-out-of-N OT
- oblivious transfer with adaptive queries.
1 Introduction
1.1 Oblivious Transfer
1.2 Correctness and Security Definitions
- The Receiver's Security:
receiver: 计算上不可区分获得的值和随机值
- The Sender's Security:
sender: 对于sender,要求real implementation of the protocol 和 ideal model不可区分,即不可以获得比ideal model 下更多的信息 ideal implementation: a trusted party
formal def:
2 Protocols for 1-out-of-N Oblivious Transfer
- assumption: block ciphers or keyed one-way hash functions can be modeled as PRF.
PRF :
- block cipher with key K and encrypting x
- keying a hash function with K and applying it to x
- main idea of 1-out-of-N: use a small set of keys(logN) and mask each input with a combination of a different subset of the keys 用logN个不同的keys,通过不同的密钥组合来加密不同的输入
- p.s.: the keys are not applied directly(insecure) input : the value is used for masking 不能直接把密钥应用到明文上加密(比如异或的形式)
有两种实现1-out-of-N OT的协议: 一种是使用logN次 1-out-of-2 OT协议 另一种是使用递归式的方法:将1-out-of-N分为两个1-out-of- OT
两个协议中最主要的是transfer stage中调用1-out-of-2。 不过后一种协议再初始化阶段是O(N)的复杂度,另一个是O(NlogN)的复杂度。
2.1 A Protocol for 1-out-of-N OT
Protocol
- sender B input , receiver want's to learn
- sender B prepares random pairs of keys B准备logN个密钥对,每个密钥对中一个对应比特0,一个对应比特1。对每一个都做mask操作,具体来说就是根据的比特位来选择密钥,用PRF的output依次mask。
- A and B engage in a 1-out-of-2 OT on A和B执行logN次 1-out-of-2 OT,得到A的选择对应比特位的密钥。
- B sends to A the string Y B向A发送N个加密后的Y = E(X)。
- A reconstructs X A只有他所选择值的密钥,只能解密出其中一个。
Complexity
- preprocessing(step 1): evaluations of the pseudo-random function FK 每一个X都要logN个密钥对其mask。
- transfer stage: invocations of the 1-out-of-2 OT protocol
invocation: a request for help
Improvement
2.2 A Recursive Protocol for 1-out-of-N OT
protocol
- sender B input , receiver want's to learn
- B prepares two sets of randomly chosen keys. B arranges the N inputs in a matrix. B准备两组sqrt(N)的随机密钥。再把这N个值组合为一个矩阵,这样就可以用行列来索引。B对每个值都用行列索引来加密。
- A and B engage in a 1-out-of- OT protocol A 和B执行1-out-of- OT,让A得到目标选择的行列密钥。
- B sends to A all the Y
- A reconstructs X A只有目标选择对行列密钥,所以只能得到一个值。
complexity
- total = 2N evaluations of FK for preprocessing + 2 invocations of the 1-out-of-sqrt(N) protocol for transfer
- 2 1-out-of-sqrt(N) OT
- preprocess: evaluations for FK
- transfer stage: 1-out-of-2 OT 所以说两个协议调用1-out-of 2的次数是一样的
- totol invocations of PRF:
- total calls of 1-out-of-2 OT:
2.1协议被认为是 logn维密钥加密的,而2.2协议被认为是2维加密